如何在VScode+PlatformIO中使用STM32CubeIDE的工程?

您所在的位置:网站首页 vscodeplatformio 重建感知索引 如何在VScode+PlatformIO中使用STM32CubeIDE的工程?

如何在VScode+PlatformIO中使用STM32CubeIDE的工程?

2023-11-12 14:34| 来源: 网络整理| 查看: 265

VScode + PlatformIO

VScode是一款由微软开发的免费、跨平台的源代码编辑器,可用于开发各种编程语言,如Python、C/C++,Verilog HDL等。它提供了丰富的功能和插件,如代码补全、调试、版本控制等,使得开发者能够更加高效地进行编码工作。VScode也是一款非常流行的代码编辑器,广泛用于开发人员的日常工作中。

PlatformIO是一个开源的跨平台物联网开发生态系统,旨在为开发者提供一个统一的平台来编译、调试和上传程序到不同的嵌入式设备上。它支持各种流行的开发板和芯片平台,如Arduino、ESP8266、ESP32、STM32等。PlatformIO提供了一个集成式开发环境,包括IDE和命令行工具,并且具有丰富的功能,如库管理器、调试工具、内存检查、代码分析等,使得嵌入式开发更加容易、高效和可靠。同时,PlatformIO还提供了一个强大的社区支持和文档,以帮助开发者更好地使用它的工具和平台。

安装

无论是Windows(8,10,11),Linux(Debian,Ubuntu,Red Hat,CentOS,Fedora,SUSE),还是Mac (macOS 10.11+),都可以通过下载VScode安装包进行安装。也可通过源进行安装,Linux下通过源的步骤详见这里

安装完成后,以插件形式安装PlatformIO,安装流程详见这里,注意如果安装过程出奇的慢,可能需要科学上网工具。

Ubuntu系统在安装platformIO插件时会遇到报错,预先执行如下命令:

sudo apt-get install python3-venv STM32CubeIDE

STM32CubeIDE是STMicroelectronics公司提供的一款集成开发环境(IDE),旨在为STM32系列微控制器的开发提供全面的支持。STM32CubeIDE基于Eclipse平台,提供了丰富的功能和工具,如代码编辑器、编译器、调试器、版本控制、模拟器等,支持多种编程语言,如C、C++等。此外,STM32CubeIDE还集成了STMicroelectronics提供的STM32Cube软件包,包括HAL库、LL库、CMSIS等,以及各种板级支持包(BSP),可大大简化STM32开发的过程。STM32CubeIDE具有易用性和高效性,可以帮助开发者快速开发STM32系列微控制器的应用程序。

通过STM32Cube软件,调整单片机时钟频率,开启DMA,加入FreeRTOS支持等等都可以通过动动鼠标完成,完全不用关心底层外设如何初始化的问题,用起来真香。 真香

安装

目前发现在CentOS7.9系统下安装的STM32CubeIDE由于glib版本过低(GLIBC_2.27 not found),无法编译工程,比较遗憾。

VScode + PlatformIO + STM32CubeIDE

但是本人不是太喜欢Eclipse,于是就有一个疑问,如何在VScode + PlatformIO环境下优雅地使用STM32CubeIDE?基本思路是将STM32CubeIDE的工程文件夹放到PlatformIO工程的src文件夹下,然后修改platformio.ini文件,添加对宏定义,头文件路径,link文件的描述即可。具体的描述其实也在STM32CubeIDE的Project->Properties->C/C++ Build/Settings/Tool Settings/All options里体现。这样即使用VScode接手工程开发后,如果还想用添加其他外设,依然可以使用STM32CubeIDE的图形界面进行修改。

具体步骤如下:

使用PlatformIO创建工程,这里以STM32F103C8T6为例。

在Visual Studio Code中打开PlatformIO IDE。单击“PlatformIO”图标并选择“PIO Home”。如果还没安装ST的支持包,可以点击Platforms标签页,查找ST STM32并安装。在PIO Home中,单击“New Project”按钮。在弹出的对话框中,输入项目名称,并选择STM32F103C8。 这里Framework可选项包括Arduino,CMSIS,STM32Cube,libopencm3。Framework描述详见这里,不过我们并不用PlatformIO自带的任何框架,但是后面用STM32CubeIDE创建工程时需要一个空的src文件夹,故不建议选Arduino和CMSIS(它们会自动生成main.cpp到src文件夹) Location项提供工程的父目录

使用STM32CubeIDE创建工程,工程路径设置为前文的src文件夹。进行必要的配置并保存。

编辑platformio.ini文件,示例如下:

[env:genericSTM32F103C8] platform = ststm32 board = genericSTM32F103C8 build_flags = -DUSE_HAL_DRIVER -DSTM32F103xB -Isrc/Core/Inc -Isrc/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -Isrc/Drivers/STM32F1xx_HAL_Driver/Inc -Isrc/Drivers/CMSIS/Device/ST/STM32F1xx/Include -Isrc/Drivers/CMSIS/Include -Isrc/Middlewares/Third_Party/FreeRTOS/Source/include -Isrc/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -Isrc/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3 board_build.ldscript = ./src/STM32F103C8TX_FLASH.ld

最后build。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3